/**
 * Alipay.com Inc.
 * Copyright (c) 2004-2016 All Rights Reserved.
 */
package com.alipay.study.filter;

import com.netflix.zuul.ZuulFilter;

/**
 * 网关过滤器
 * @author zijin
 * @version $Id: ZuulFilter.java, v 0.1 2016年11月19日 下午2:59:07 zijin Exp $
 */
public class ConsumerFilter extends ZuulFilter {

    /** 
     * 具体逻辑
     * @see com.netflix.zuul.IZuulFilter#run()
     */
    @Override
    public Object run() {
        System.out.println("---------------------ConsumerFilter running -----------------------");

        return null;
    }

    /** 
     * 返回一个boolean类型来判断该过滤器是否要执行，可以作为filter生效开关
     * true 一直执行
     * false不执行
     * @see com.netflix.zuul.IZuulFilter#shouldFilter()
     */
    @Override
    public boolean shouldFilter() {
        return true;
    }

    /** 
     * 当前filter的排序值
     * @see com.netflix.zuul.ZuulFilter#filterOrder()
     */
    @Override
    public int filterOrder() {
        return 0;
    }

    /** 
     * 返回一个字符串代表过滤器的类型
     * pre：可以在请求被路由之前调用
     * routing：在路由请求时候被调用
     * post：在routing和error过滤器之后被调用
     * error：处理请求时发生错误时被调用
     * 
     * @see com.netflix.zuul.ZuulFilter#filterType()
     */
    @Override
    public String filterType() {
        return "pre";
    }

}
